package itheima03;

import java.util.function.Consumer;

/*
    常用的函数式接口
        java.util.function.Consumer<T>: 消费型接口
            抽象方法:
                public abstract void accept(T t): 消费一个T类型的数据t
                什么叫做消费呢?
                因为accept方法是抽象的,只要做覆盖重写{}后,就叫消费了,至于{}中写了哪些代码,我不管
 */
public class Demo04Consumer {
    public static void main(String[] args) {
        String str = "Hello World";
        //1.匿名内部类对象的方式
        method(str, new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        //2.lambda表达式的标准方式
        method(str,(String s)->{
            System.out.println("长度: "+s.length());
        });

        //3.lambda表达式的简化方式
        method(str,s -> System.out.println("全部大写: "+s.toUpperCase()));
    }
    /*
        定义方法,使用函数式接口Consumer作为参数
     */
    public static void method(String str,Consumer<String> con) {
        //调用抽象方法
        con.accept(str);
    }
}
